package org.dromara.patrol.domain;

import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;

import java.io.Serial;

/**
 * 巡店管理-巡店模板配置对象 patrol_template
 *
 * @author LionLi
 * @date 2024-03-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "patrol_template" ,autoResultMap = true)
public class PatrolTemplate extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 巡店模板id
     */
    @TableId(value = "template_id")
    private Long templateId;

    /**
     * 巡店模板名称
     */
    private String name;

    /**
     * 描述
     */
    private String description;

    /**
     * 分类等级（0 - 4 五个等级，用户自建默认 3）
     */
    private Long level;

    /**
     * 模板分数
     */
    private BigDecimal aggregateScore;

    /**
     * 模式（字典表：DEDUCTION 扣分模式，SCORE 评分模式）
     */
    private String markStrategy;

    /**
     * 整改触发阈值
     */
    private BigDecimal rectifyThreshold;

    /**
     * 评分项数量
     */
    private Long itemNum;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 打分习惯（如果是评分模式，需要设置： DEDUCT 扣分， SCORE 得分）
     */
    private String scoreHabit;

    /**
     * 版本
     */
    private String ver;

    /**
     * 得分计算公式，格式用","分割，包含数字、运算符、常量等（常量定义："TOTAL_SCORE" 模板总分，"TOTAL_GET_SCORE" 评分项总得分，"TOTAL_DEDUCTION_SCORE" 评分项总扣分，"ITEM_COUNT" 总评分项数，"INAPPLICABLE_ITEM_SCORE" 不适用评分项分数，"RESPONSIBLE_PERSONS" 责任人个数，"RP_SCORE" 责任人关联评分项总得分，"RP_DEDUCTION_SCORE" 责任人关联评分项总扣分）
     */
    @TableField(typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private Object calculateRule;

    /**
     * 是否启用（0正常 1停用）
     */
    private String status;

    /**
     * 全部不得分（字典表：0 是， 1 否；如果分类配置表nodeScoreType 全部都是NO_SCORING 则为 1）
     */
    private String allNoScoring;


}
